[AMORO-4236] Splitting the “Optimizing” tab into the “Optimizing” tab,“Cleanup” tab and “Profiling” tab#4238
Conversation
235a52a to
46c8157
Compare
07bd711 to
1271703
Compare
|
Overall: Good design direction, but suggest refining the category taxonomy before merging. The idea of separating table processes into different tabs is great. However, I think Suggested ClassificationInstead of a binary
Additionally, Rationale
Suggested ApproachFor the backend API, I'd recommend defining three For the frontend, there are two pragmatic options:
Either way, the endpoint could be generalized from What do you think? |
Your feedback is very helpful. Thank you very much. The new commit has been fixed and the latest screenshots have also been updated above. The changes are as follows:
BREAKING CHANGE:
|
|
The current design introduces two static methods ( A cleaner approach would be to add an instance method to the interface: /**
* Returns the list of process type names belonging to the given category.
* Used internally to filter processes by category.
*/
default List<String> getProcessTypesByCategory(String processCategory) {
return Collections.emptyList();
}Each descriptor overrides this to return its own category-to-types mapping: // MixedAndIcebergTableDescriptor
@Override
public List<String> getProcessTypesByCategory(String processCategory) {
return FormatTableDescriptor.resolveCategoryTypes(
processCategory, OPTIMIZING_TYPE_LIST, CLEANUP_TYPE_LIST, PROFILING_TYPE_LIST);
}
// HudiTableDescriptor / PaimonTableDescriptor
@Override
public List<String> getProcessTypesByCategory(String processCategory) {
if (ProcessCategory.OPTIMIZING.getName().equalsIgnoreCase(processCategory)) {
return OPTIMIZING_TYPES;
}
return Collections.emptyList();
}Then This keeps the "what types belong to my category" knowledge encapsulated in each descriptor, and makes the interface easier to extend when new categories are added. |
…e method getProcessTypesByCategory, moving routing logic into each descriptor.
3f98b30 to
ead2f28
Compare
Thank you very much. The new commit has been fixed it. |
Why are the changes needed?
Close #4236.
Brief change log
Introduces Maintenance tab in the table details page to separate maintenance processes (cleanup operations) from optimizing processes.
Key changes:
processCategoryparameter togetOptimizingProcessesInfoAPI to filter by OPTIMIZING or MAINTENANCE category/maintenance-typesto fetch maintenance-specific process typesMixedAndIcebergTableDescriptorto support category-based filtering with proper type separationMaintenance.vuecomponent that wrapsOptimizing.vuewith maintenance-specific configurationprocessCategoryandcancelModalTitleKeyprops toOptimizing.vuefor flexible reuseHow was this patch tested?
Add some test cases that check the changes thoroughly including negative and positive cases if possible
Add screenshots for manual tests if appropriate
Documentation